package com.baidu.bas.magic.ext.mudule;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.ssssssss.magicapi.config.MagicModule;
import org.ssssssss.magicapi.context.RequestContext;
import org.ssssssss.script.annotation.Comment;

import javax.servlet.http.HttpServletRequest;

import static com.baidu.bas.annotation.constant.ReqAttrKey.TENANCY;

/**
 * 扩展json 模块
 * @author liuzhenchuan@foxmail.com
 * @date 2021/3/11
 */
@Component
@Slf4j
public class XJsonModule implements MagicModule {

    @Comment("解析为json object 对象")
    public JSONObject parseObject(@Comment("参数名") String data) {
        if(data==null){
            return null;
        }
        try{
            return JSON.parseObject(data);
        }catch (Exception e){
            log.warn("解析data [{}]失败!",data,e);
            return null;
        }
    }

    @Comment("解析为json object 对象")
    public JSONArray parseArray(@Comment("参数名") String data) {
        if(data==null){
            return null;
        }
        try{
            return JSON.parseArray(data);
        }catch (Exception e){
            log.warn("解析data [{}]失败!",data,e);
            return null;
        }
    }

    @Comment("解析为json object 对象")
    public Object parse(@Comment("参数名") String data) {
        if(data==null){
            return null;
        }
        try{
            return JSON.parse(data);
        }catch (Exception e){
            log.warn("解析data [{}]失败!",data,e);
            return null;
        }
    }

    @Override
    public String getModuleName() {
        return "jsonx";
    }
}
